The Sage Project: Software Engineering for Distributed Applications
نویسندگان
چکیده
This paper describes Sage, a research project in software engineering for (fault-tolerant) distributed applications that assists programmers write correct, eecient code. Speciically, Sage uses the modal logic of knowledge and applies theoretical results detailing how processes learn facts about each other's state to derive the minimal communication graph for a given distributed coordination problem. An environment that applies intricate theoretical results, but hides the theory from users is particularly important as few distributed applications programmers hold advanced degrees in computer science. The speciication interface is controlled, yet expressive enough to capture canonical distributed coordination problems and weaker variants appropriate for wide-area and object-oriented systems. The resulting graphical display shows programmers which messages must be received. Sage allows users to experiment on the derived protocol by crashing processes, reordering events, losing messages, and partitioning the network. Under these conditions, Sage regenerates the communication graph, or indicates a solution is now impossible. This has two beneets: it animates the eeects of unpredictable system events on distributed applications, and it greatly simpliies testing distributed algorithms. Sage completely separates the issues in testing a protocol's behavior in the face of failures, from the eeects background system conditions (e.g., processor or network loads) can have on the testing procedure itself. As development continues, other components will highlight required group and communication primitives, generate skeleton code, and verify user-drawn protocols. Thus, Sage will be an integrated development, testing and veriication environment for distributed applications.
منابع مشابه
The Sage Project: A New Approach to Software Engineering for Distributed Applications
We describe the Sage project, a new approach to software engineering for (fault-tolerant) distributed applications. Sage uses the modal logic of knowledge and applies theoretical results detailing how processes learn facts about each other's state to derive the minimal communication graph for a wide range of coordination problems. The speciication interface is controlled, yet expressive enough ...
متن کاملToward Sofware Synthesis for Distr ibuted Applicat ions
This paper describes Sage, a software environment supporting software development, synthesis, and testing for distributed computing applications. While the principal domain of interest is applications that must be fault-tolerant (i.e., be able to withstand the failure of some of the participants) Sage is not limited to this; it can be extended to distributed applications with no criticality req...
متن کاملSEMPA: software engineering methods for parallel scientific applications
SEMPA is an interdisciplinary project that brings together researchers from computer science, mechanical engineering and numerical mathematics. Its central objective is to develop new software engineering (SWE) methods for (distributed memory) parallel scientific computing. SEMPA is being funded by the BMBF .
متن کاملManaging Mdo Software Development Projects
Over the past decade, the NASA Langley Research Center developed a series of "grand challenge" applications demonstrating the use of parallel and distributed computation and multidisciplinary design optimization. All but the last of these applications were focused on the high-speed civil transport vehicle; the final application focused on reusable launch vehicles. Teams of discipline experts de...
متن کاملSage: Generating Applications with Uml and Components
This thesis presents a prototype application generation tool, SAGE (SeaBank Application Generation Environment), that demonstrates how the Unified Modeling Language (UML) can be used as a domain specific application generation language for component or framework-based software development. The UML-based extensible CASE tool, Rational Rose, was extended to create SAGE for developing applications...
متن کامل